package com.itheima.suanfa;

import java.util.Arrays;

public class QuiteSortDemo {

    public static void main(String[] args) {
        int[] arr = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};

        //调用方法 对 数组进行排序
        quiteSort(arr, 0, arr.length - 1);
        System.out.println(Arrays.toString(arr));

    }

    private static void quiteSort(int[] arr, int left, int right) {
        if (left > right) {
            return;
        }
        //left0 记录初始的左边的位置
        int left0 = left;
        //right0 记录初始的右边的位置
        int right0 = right;

        //1.确定基准数
        int jizhunshu = arr[left0];
        //2.定义两个索引
        //左边  0

        //死循环 目的:找基准数的位置
        while (left != right) {
            //while(true)
            while (arr[right] >= jizhunshu && left < right) {  //右边找比基准数小的
                right--;
            }
            //while(true)//左边找 比基准数 大的
            while (arr[left] <= jizhunshu && left < right) {
                left++;
            }
            //交换大的和小的 arr[left] 大  arr[right] 小
            int temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
        }
        //找到基准数的位置了
        //基准数归位  arr[0] arr[left]
        int temp = arr[left];
        arr[left] = arr[left0];
        arr[left0] = temp;

        //左边继续排
        quiteSort(arr,left0,left-1);
        //右边 继续排
        quiteSort(arr,left+1,right0);

    }
}
